package parser.prestige.meldunek.xml;

import parser.prestige.AbstractNode;
import parser.prestige.IXmlElement;

import javax.xml.stream.XMLEventFactory;
import javax.xml.stream.XMLEventWriter;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.events.XMLEvent;

/**
 * Created with IntelliJ IDEA.
 * User: marcin.kaluza
 * Date: 02.12.13
 * Time: 09:40
 * To change this template use File | Settings | File Templates.
 */
public class Material extends AbstractNode implements IXmlElement {
    private String indeks;
    private String nazwa;
    private String idDostawa;
    private String nrDostawy;
    private String idMagazyn;
    private String ilosc;
    private String iloscTPP;
    private String precyzja;
    private String narzut;
    private String cena;
    private String wartosc;

    public Material(String indeks, String nazwa, String idDostawa, String nrDostawy, String idMagazyn, String ilosc, String iloscTPP, String precyzja, String narzut, String cena, String wartosc) {
        this.indeks = indeks;
        this.nazwa = nazwa;
        this.idDostawa = idDostawa;
        this.nrDostawy = nrDostawy;
        this.idMagazyn = idMagazyn;
        this.ilosc = ilosc;
        this.iloscTPP = iloscTPP;
        this.precyzja = precyzja;
        this.narzut = narzut;
        this.cena = cena;
        this.wartosc = wartosc;
    }

    public Material() {
        this.indeks = indeks;
        this.nazwa = "";
        this.idDostawa = "";
        this.nrDostawy = "";
        this.idMagazyn = "";
        this.ilosc = "";
        this.iloscTPP = "";
        this.precyzja = "";
        this.narzut = "";
        this.cena = "";
        this.wartosc = "";
    }

    public String getIndeks() {
        return indeks;
    }

    public void setIndeks(String indeks) {
        this.indeks = indeks;
    }

    public String getNazwa() {
        return nazwa;
    }

    public void setNazwa(String nazwa) {
        this.nazwa = nazwa;
    }

    public String getIdDostawa() {
        return idDostawa;
    }

    public void setIdDostawa(String idDostawa) {
        this.idDostawa = idDostawa;
    }

    public String getNrDostawy() {
        return nrDostawy;
    }

    public void setNrDostawy(String nrDostawy) {
        this.nrDostawy = nrDostawy;
    }

    public String getIdMagazyn() {
        return idMagazyn;
    }

    public void setIdMagazyn(String idMagazyn) {
        this.idMagazyn = idMagazyn;
    }

    public String getIlosc() {
        return ilosc;
    }

    public void setIlosc(String ilosc) {
        this.ilosc = ilosc;
    }

    public String getIloscTPP() {
        return iloscTPP;
    }

    public void setIloscTPP(String iloscTPP) {
        this.iloscTPP = iloscTPP;
    }

    public String getPrecyzja() {
        return precyzja;
    }

    public void setPrecyzja(String precyzja) {
        this.precyzja = precyzja;
    }

    public String getNarzut() {
        return narzut;
    }

    public void setNarzut(String narzut) {
        this.narzut = narzut;
    }

    public String getCena() {
        return cena;
    }

    public void setCena(String cena) {
        this.cena = cena;
    }

    public String getWartosc() {
        return wartosc;
    }

    public void setWartosc(String wartosc) {
        this.wartosc = wartosc;
    }

    @Override
    public void createAsNode(XMLEventWriter eventWriter, int tabValue) throws XMLStreamException{
        XMLEventFactory eventFactory = XMLEventFactory.newInstance();
        XMLEvent endLineEvent = eventFactory.createDTD("\n");
        XMLEvent tabulatorEvent = eventFactory.createDTD("\t");

        //TAG:<Material>
        addTabs(eventWriter, tabValue);
        eventWriter.add(eventFactory.createStartElement("", "", "Material"));
        eventWriter.add(endLineEvent);

        //składowe Material
        addNode(eventWriter, "Indeks", indeks, tabValue + 1);
        addNode(eventWriter, "Nazwa", nazwa, tabValue + 1);
        addNode(eventWriter, "Id_Dostawa", idDostawa, tabValue + 1);
        addNode(eventWriter, "NrDostawy", nrDostawy, tabValue + 1);
        addNode(eventWriter, "Id_Magazyn", idMagazyn, tabValue + 1);
        addNode(eventWriter, "Ilosc", ilosc, tabValue + 1);
        addNode(eventWriter, "IloscTPP", iloscTPP, tabValue + 1);
        addNode(eventWriter, "Precyzja", precyzja, tabValue + 1);
        addNode(eventWriter, "Narzut", narzut, tabValue + 1);
        addNode(eventWriter, "Cena", cena, tabValue + 1);
        addNode(eventWriter, "Wartosc", wartosc, tabValue + 1);
        //koniec składowych Material

        //TAG:</Material>
        addTabs(eventWriter, tabValue);
        eventWriter.add(eventFactory.createEndElement("", "", "Material"));
        eventWriter.add(endLineEvent);
    }
}
